/*
 * Copyright (c) 2002-2004, xRhino, Inc.
 *
 * This library is free software; you can redistribute and/or modify
 * it under the terms of the dual license distributed with this source
 * package (a combined Trolltech QPL/GPL-compatible license)
 *
 * Under this dual license scheme, a separate license is available for use of 
 * this code with a proprietary (closed) system. For more information on the 
 * license, please see the LICENSE file distributed with this source package.
 */
#ifndef SUGPATHSEGARC_H
#define SUGPATHSEGARC_H

#include "SugTypes.h"
#include "SugPathSeg.h"

/**
 * The class represents the A,a path command.
 */
class SugPathSegArc: public SugPathSeg
{
  protected:
   /**
    * The R1 variable, also known as rx.
    */
    SugRealType mR1;

   /**
    * The R2 variable, also known as ry.
    */
   SugRealType mR2;

   /**
    * The angle or x-axis-rotation variable.
    */
   SugRealType mAngle;

   /**
    * The large-arc flag.
    */
   bool mLargeArcFlag;

   /**
    * The sweep flag.
    */
   bool mSweepFlag;

  public:
   /**
    * Returns the R1/rx variable.
    */
    SugRealType getR1();

   /**
    * Returns the R2/ry variable.
    */
   SugRealType getR2();

   /**
    * Returns the angle/x-axis-rotation variable.
    */
   SugRealType getAngle();

   /**
    * Returns the large-arc flag.
    */
   bool getLargeArcFlag();

   /**
    * Returns the sweep flag.
    */
   bool getSweepFlag();

   /**
    * Sets the R1/rx variable.
    */
   SugRealType setR1(SugRealType newR1);

   /**
    * Sets the R2/ry variable.
    */
   SugRealType setR2(SugRealType newR2);

   /**
    * Sets the angle/x-axis-rotation variable.
    */
   SugRealType setAngle(SugRealType newAngle);

   /**
    * Sets the large-arc flag.
    */
   bool setLargeArcFlag(bool newLargeArcFlag);

   /**
    * Sets the sweep flag.
    */
   bool setSweepFlag(bool newSweepFlag);

   /**
    * The class constructor.
    */
   SugPathSegArc();

   /**
    * The class destructor.
    */
   ~SugPathSegArc();

};

#endif
